<?php

namespace app\api\controller;

use app\common\controller\Api;
use think\Db;

/**
 * 开门
 */
class Door extends Api
{

    
    protected $noNeedLogin = ['*'];
 
    protected $noNeedRight = ['*'];

    /**
     * 模拟测试刷卡
     *
     * @return void
     */
    public function test()
    {
        // $str = "in  234234**";
        // halt(strpos($str,'in3'));

        $data = [    'device_id'=>'2021001',
        'realtime_type'=>'0',
        'idcard'=>'3288463766',
        'gate'=>'3',
        'time'=>'20210604114432',
        'accessstat'=>'reject00',//reject00
        'entrance'=>'out',
        'doorsensor'=>'wu'];
         $url = $this->request->domain().'/api/door/open?'.http_build_query($data);
         halt($url);
        echo file_get_contents($url);
    }

    /**
     * 开门
     *
     * @return void
     */
    public function open()
    {
        $params = $this->request->param();
        file_put_contents('1.txt',date('Y_m_d_H_i_s').'IP:'.$this->request->ip().json_encode($params).PHP_EOL,FILE_APPEND);

        return $this->add_open_log($params);
        return 'ok';
    }

    /**
     * 添加开门记录
     *
     * @param array $params
     * @return void
     */
    protected function add_open_log($params)
    {

        if(!isset($params['idcard'])){
            return 'nocard';
        }
        //找卡号
        $student = Db::name('student')
            ->where('card',$params['idcard'])
            ->find();
      


            // halt($student);
        if($student){
            //判断进出校门   发送模版消息
            // return file_get_contents($this->request->domain().'/api/template/send_msg?card='.$params['idcard']);
            $tkid = $this->get_id($params);
            $status = $this->get_status($params);


            $indata['uid'] = $student['uid'];
            $indata['card'] = $params['idcard'];
    
            $indata['date'] = date('Y-m-d');
            $indata['time'] = strtotime($params['time']);
            $indata['status'] = $status['num'];
            $indata['tkid'] = $tkid;
            $res = Db::name('door_log')->where($indata)->find();
            if($res){
                return "已有记录";
            }
            $id = Db::name('door_log')->insertGetId($indata);
            $temp_url = $this->request->domain().'/index/index/look_image?id='.$id;
            
            $Template = new \app\api\controller\Template();
            $Template->send_msg($params['idcard'],$temp_url,$status['text']);

            //更新图片
            file_get_contents($this->request->domain().'/api/task/get_image');

        }
       
    }


    public function get_status($params)
    {
        switch ($params['entrance']) {
            case 'in':
                return ['text'=>'进校','num'=>'1'];
                break;
            case 'out':
                return ['text'=>'出校','num'=>'2'];
                break;
            default:
                if(strpos($params['entrance'],'in')!==false){
                    return ['text'=>'进校','num'=>'1'];
                }elseif(strpos($params['entrance'],'out')!==false){
                    return ['text'=>'出校','num'=>'2'];
                }

                
                return ['text'=>'未知1','num'=>'0'];
                break;
        }
        return ['text'=>'未知2','num'=>'0'];
    }

    /**
     * 获取图片
     *
     * @param array $params
     * @return void
     */
    protected function get_id($params)
    {
        $card=$this->card_db();
        $where['cardnum'] = $params['idcard'];
        $where['gatenum']  = $params['gate'];
        $where['entrance']  = $params['entrance'];
        $where['accessstat'] = $params['accessstat'];
        $where['CreatedTime']  = date('Y-m-d H:i:s',strtotime($params['time']));
    
        $where['gatenum']  = $params['gate'];
        $id = $card->name('accessrecord')->where($where)->value('tkid');

        return $id;
        // $id = 160;
        // if(is_file('C:\\wwwroot\\card.hellomida.com\\WWW\\pictures\\'.$id.'.jpg')){//file_exists
            $url =  'http://106.52.152.213/pictures/'.$id.'.jpg';
            try {
                $content = file_get_contents($url);
                if(strlen($content)>1000){
                    $img_path = 'pic/'.$id.'.jpg';
                    file_put_contents($img_path,$content);
                    // halt($this->request->domain().'/'.$img_path);
                    return $this->request->domain().'/'.$img_path;
                }
            } catch (\Throwable $th) {
                //throw $th;
            }
            // halt();
            // return $url;
        // }

        // 
        return null;

        // Db::name('')
    }


    // // 连接卡的数据库
    // public function card_db(){
    //     $new =     Db::connect([
    //         // 数据库类型
    //         'type'    => 'mysql',
    //         // 数据库连接DSN配置
    //         'dsn'     => '',
    //         // 服务器地址
    //         'hostname'  => '127.0.0.1',
    //         // 数据库名
    //         'database'  => 'dwzuapairenlian',
    //         // 数据库用户名
    //         'username'  => 'card',
    //         // 数据库密码
    //         'password'  => 'card',
    //         // 数据库连接端口
    //         'hostport'  => '3306',
    //         // 数据库连接参数
    //         'params'   => [],
    //         // 数据库编码默认采用utf8
    //         'charset'   => 'utf8',
    //         // 数据库表前缀
    //         'prefix'   => '',
    //     ]);
    //     return $new;
    // }

}
